package com.atomy.bigeventsservice.controller;

import com.atomy.bigeventsservice.entity.Result;

import com.atomy.bigeventsservice.entity.User;
import com.atomy.bigeventsservice.service.UserServer;
import com.atomy.bigeventsservice.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;


@Slf4j
@RestController
@RequestMapping("/users")
public class LoginController {
    @Autowired
    private UserServer userServer;
    @PostMapping("/login")
    public Result Login(@RequestBody User user){
//        传输给service层 如果存在返回成功，如果不存在返回错误
        User u= userServer.login(user);
        if (u == null) {
            return Result.error("用户名或密码不正确");
        }
        Map<String,Object> map=new HashMap<>();
        map.put("id",u.getId());
        map.put("username",u.getUsername());
        String jst= JwtUtils.generateJwt(map);
        return Result.success(jst);
    }
    @PostMapping("/register")
    public Result register(@RequestBody User user){
        User u= userServer.register(user);
        if (u == null) {
            return Result.error("用户名已存在");
        }

        return Result.success("注册成功");
    }


//    建议测试之前第一件事情，定义实体类
    @GetMapping("/test")
    public Result test(){
        return Result.success();

    }
    @GetMapping("/test2")
    public Result test(@RequestHeader("token") String token) {
        // 在这里处理获取到的 token
        log.info("Received token: {}", token);

        // 其他逻辑，可以解析和验证 token；检测token是否存在的问题由过滤器解决

        return Result.success();
    }
}
